<HTML>
<HEAD>
<TITLE>
Compuesto.h
</TITLE>
</HEAD>
<BODY>
<PRE>
<font color="blue">#ifndef</font> COMPUESTO_H_
<font color="blue">#define</font> COMPUESTO_H_

<font color="blue">#include</font> <font color="maroon">&#60;stdlib.h&#62;</font>
<font color="blue">#include</font> <font color="maroon">"componentes/ComponenteAlmacenamiento.h"</font>
<font color="blue">#include</font> <font color="maroon">"../exceptions/MemoryStorageException.h"</font>
<font color="blue">#include</font> <font color="maroon">"../exceptions/NullPointerException.h"</font>
<font color="blue">#include</font> <font color="maroon">"../exceptions/CompuestoException.h"</font>

<font color="blue">class</font> Compuesto<font color="black">{</font>
    
    <font color="blue">private</font><font color="black">:</font>
        ComponenteAlmacenamiento <font color="black">*</font><font color="black">*</font>componentes;
        <font color="blue">int</font> cantidadComponentes;
        
    <font color="blue">public</font><font color="black">:</font>
        Compuesto<font color="black">(</font><font color="black">)</font>;
        
        <font color="green">/**
         * Agrega un componente
         * 
         * @author emilio 
         * @param ComponenteAlmacenamiento *componente
         * @throws CompuestoException        * 
         * 
         */</font>
        virtual <font color="blue">void</font> addComponente<font color="black">(</font>ComponenteAlmacenamiento <font color="black">*</font>componente<font color="black">)</font>;
        
        <font color="green">/**
         * Elimina un componente
         *
         * @author emilio
         * @param ComponenteAlmacenamiento* componente
         *
         */</font>
        virtual <font color="blue">void</font> deleteComponentAt<font color="black">(</font><font color="blue">int</font> index<font color="black">)</font>;
        
        
        <font color="green">/**
         * 
         * @author emilio
         * @param int index
         * @return ComponenteAlmacenamiento* componente
         * @throws CompuestoException
         * 
         */</font>
        ComponenteAlmacenamiento<font color="black">*</font> getComponenteAt<font color="black">(</font><font color="blue">int</font> index<font color="black">)</font>;
        
        <font color="green">/**
         * 
         * @author emilio
         * @return int cantidad
         * 
         */</font>
        <font color="blue">int</font> getCantidadComponentes<font color="black">(</font><font color="black">)</font>;
        
        virtual ~Compuesto<font color="black">(</font><font color="black">)</font>;
<font color="black">}</font>;

<font color="blue">#endif</font> <font color="green">/*COMPUESTO_H_*/</font>

</PRE>
</BODY>
</HTML>
